Conventional computer programs, such as the conventional MONEY product commercially available from MICROSOFT Corporation, and the conventional QUICKEN product commercially available from INTUIT corporation, allow a user to identify spending patterns and perform other operations by tracking the amount of money the user spends in various categories.
To categorize the amount of money spent, the user can enter an amount of each transaction that user made, and assign a category to the transaction. For example, if the user purchases gasoline, the user can enter the amount, and assign the category “automobile”. At the end of the month, the user can use the categorized transaction data to get a summary statement that shows, for example, the total of all transactions made in that month that were assigned to the automobile category.
There may be a large number of such categories, and there may be a hierarchy of such categories. For example, the automobile category may be further divided into “gasoline” and “maintenance” categories. The hierarchical nature of the categories allows different levels of granularity in the reporting, with reports available that show any spending related to automobiles, or spending just on gasoline.
In addition to the large number of categories, there may be a large number of transactions for the user to enter. For example, a typical credit card statement may have dozens of transactions, making the data entry process time-consuming and cumbersome. Furthermore, the user may have no idea what category to assign to a transaction, because the user may have forgotten the precise nature of the transaction, or may not recall the merchant's name, or the merchant's name on the credit card statement may be different from the name of the store at which the transaction was made.
To solve these problems with credit cards, some financial institutions allow users to download the transaction data from their credit cards. This helps speed the process of entering the amounts, and can help prevent errors, but it does not solve the categorization issues discussed above. To help solve these issues, the programs described above attempt to categorize the transactions using algorithms that are unknown, but not very effective, as neither of the above products appears to provide accurate categorization a majority of the time. One hundred percent accurate categorization by such programs isn't necessary because the user can categorize the remaining transactions, but the low level of automation provided by existing application programs is not much better than not automatically categorizing the transactions at all.
What is needed is a system and method that can accurately categorize transaction data.